package oj0320.oj0320_03;

import java.util.Scanner;

// 定义节点类
class Node {
    int data;
    Node next;

    Node(int data) {
        this.data = data;
        this.next = null;
    }
}

// 定义链表类
class LinkList {
    private Node p; // 指向第 m 个节点

    // 构造函数
    public LinkList(int[] a, int n, int m) {
        // 创建第一个节点
        Node first = new Node(a[0]);
        Node rear = first;

        // 创建剩余节点
        for (int i = 1; i < n; i++) {
            Node s = new Node(a[i]);
            rear.next = s;
            rear = s;

            // 将 p 指向第 m 个节点
            if (i < m) {
                p = s;
            }
        }

        // 将链表首尾相连，形成循环链表
        rear.next = first;
    }

    // 删除节点
    public void Delete() {
        // 补充对应的代码
        if (p == null) {
            return;
        }
//        遍历找前驱
        Node prev = p;
        Node q = p.next;
        while (q != p){
            prev = q;
            q = q.next;
        }
        prev.next = q.next;
        p = p.next;
    }


    // 显示链表
    public void Display() {
        if (p == null) {
            return;
        }

        Node q = p;
        while (q.next != p) {
            System.out.print(q.data + "->");
            q = q.next;
        }
        System.out.println(q.data);
    }
}

// 主类
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 输入 n 和 m
        int n = scanner.nextInt();
        int m = scanner.nextInt();

        // 输入数组 a
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = scanner.nextInt();
        }

        // 创建链表
        LinkList link = new LinkList(a, n, m);

        // 删除节点并显示链表
        link.Delete();
        link.Display();

        scanner.close();
    }
}
